package com.qqt.csr.common.operalog;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "sysOperLog")
@Builder
public class SysOprationLog {
    private static final long serialVersionUID = 1L;
    @Id
    private String id;
    /**
     * 租户id
     */
    private String tenantId;
    /** 日志级别 */
    private String level;
    /** 操作菜单 */
    private String operationMenu;

    /** 业务类型（0其它 1新增 2修改 3删除） */
    private String businessType;

    /** 请求方法 */
    private String buttonName;

    /** 请求方式 */
    private String changevalue;
    private String method;
    /** 请求方式 */
    private String requestMethod;
    /** 操作类别（0其它 1后台用户 2手机端用户） */
    private Integer operatorType;

    /** 操作人员 */
    private String operUserName;
    private String operUserId;
    /** 部门名称 */
    private String deptName;

    /** 请求url */
    private String operUrl;

    /** 操作地址 */
    private String operIp;

    /** 操作地点 */
    private String operLocation;

    /** 返回参数 */
    private String jsonResult;

    /** 操作状态（0正常 1异常） */
    private Integer status;

    /** 错误消息 */
    private String errorMsg;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Field("operTime")
    @Indexed
    private Date operTime;

    /** 消耗时间 */
    private Long costTime;

}
